#!/bin/bash
# OpenCloudOS 节点管理工具 - 停止脚本
# 停止所有相关服务和进程

set -euo pipefail

SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
DEPLOY_DIR="$(dirname "$SCRIPT_DIR")"

echo "🛑 停止OpenCloudOS节点管理工具"
echo "============================="

# 停止应用程序进程
echo "🔄 停止应用程序进程..."

# 停止node_server
if pgrep -f "node_server" > /dev/null; then
    echo "  停止 node_server 进程..."
    pkill -TERM -f "node_server" 2>/dev/null || true
    sleep 2
    # 如果还在运行，强制停止
    if pgrep -f "node_server" > /dev/null; then
        pkill -KILL -f "node_server" 2>/dev/null || true
    fi
    echo "  ✅ node_server 已停止"
else
    echo "  ℹ️  node_server 未运行"
fi

# 停止node_agent
if pgrep -f "node_agent" > /dev/null; then
    echo "  停止 node_agent 进程..."
    pkill -TERM -f "node_agent" 2>/dev/null || true
    sleep 2
    # 如果还在运行，强制停止
    if pgrep -f "node_agent" > /dev/null; then
        pkill -KILL -f "node_agent" 2>/dev/null || true
    fi
    echo "  ✅ node_agent 已停止"
else
    echo "  ℹ️  node_agent 未运行"
fi

# 停止基础设施
echo ""
echo "📦 停止基础设施服务..."
cd "$DEPLOY_DIR"

if docker compose ps -q | grep -q .; then
    docker compose down
    echo "  ✅ Docker 容器已停止"
else
    echo "  ℹ️  Docker 容器未运行"
fi

echo ""
echo "🧹 清理临时文件..."
# 清理可能的临时文件
rm -f *.log 2>/dev/null || true
rm -f /tmp/node_management_* 2>/dev/null || true

echo ""
echo "🎉 所有服务已停止！"
echo ""
echo "💡 重新启动提示:"
echo "  启动基础设施: ./deploy/scripts/start.sh"
echo "  快速启动:     ./deploy/scripts/quick_start.sh"
